package pe.gob.osinergmin.service.impl;

import android.content.Context;

import java.util.ArrayList;
import java.util.List;

import pe.gob.osinergmin.bean.SupervisionMovilDetalleSeguridad;
import pe.gob.osinergmin.dao.SupervisionMovilDetalleSeguridadDAO;
import pe.gob.osinergmin.dao.impl.SupervisionMovilDetalleSeguridadDAOImpl;
import pe.gob.osinergmin.service.SupervisionMovilDetalleSeguridadService;
import pe.gob.osinergmin.utils.PuntoControlUtils;

public class SupervisionMovilDetalleSeguridadServiceImpl implements SupervisionMovilDetalleSeguridadService {

    private static SupervisionMovilDetalleSeguridadDAO supervisionMovilDetalleSeguridadDAO;

    private static SupervisionMovilDetalleSeguridadServiceImpl instance;

    public SupervisionMovilDetalleSeguridadServiceImpl() {
        super();
        supervisionMovilDetalleSeguridadDAO = SupervisionMovilDetalleSeguridadDAOImpl.getInstance();
    }

    @Override
    public List<SupervisionMovilDetalleSeguridad> getSupervisionMovilDetalleSeguridadList(Context context, SupervisionMovilDetalleSeguridad supervisionMovilDetalleSeguridad) throws Exception {
        List<SupervisionMovilDetalleSeguridad> supervisionMovilDetalleSeguridadList = supervisionMovilDetalleSeguridadDAO.getSupervisionMovilDetalleSeguridadList(context);
        List<SupervisionMovilDetalleSeguridad> result = null;
        if(supervisionMovilDetalleSeguridad != null){
            for(SupervisionMovilDetalleSeguridad _supervisionMovilDetalleSeguridad : supervisionMovilDetalleSeguridadList){
                if(PuntoControlUtils.compareObjects(_supervisionMovilDetalleSeguridad, supervisionMovilDetalleSeguridad)){
                    if(result == null) result = new ArrayList<>();
                    result.add(_supervisionMovilDetalleSeguridad);
                }
            }
        }else{
            result = supervisionMovilDetalleSeguridadList;
        }
        return result;
    }

    @Override
    public void saveSupervisionMovilDetalleSeguridadListToLocal(Context context, List<SupervisionMovilDetalleSeguridad> supervisionMovilDetalleSeguridadList) throws Exception {
        supervisionMovilDetalleSeguridadDAO.saveSupervisionMovilDetalleSeguridadListToLocal(context, supervisionMovilDetalleSeguridadList);
    }

    @Override
    public void deleteSupervisionMovilDetalleSeguridadListFromLocal(Context context) {
        supervisionMovilDetalleSeguridadDAO.deleteSupervisionMovilDetalleSeguridadListFromLocal(context);
    }

    public static SupervisionMovilDetalleSeguridadServiceImpl getInstance(){
        if(instance == null){
            instance = new SupervisionMovilDetalleSeguridadServiceImpl();
        }
        return instance;
    }
}
